1. A Tour of Computer Systems
- parent: 0015.1 CSAPP Third Edition Bryant, Randal E. O'Hallaron, David. ๐ป
- p.73 ~ p.131 | 60 pages
1.1 Information is bits + context
The only thing that distinguishes different data objects is the context in which we view them.
์๋ก ๋ค๋ฅธ ๋ฐ์ดํฐ์์ ๊ตฌ๋ณํ ์ ์๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ๊ทธ๊ฒ์ ๋ฐ๋ผ๋ณด๋ ๋ฌธ๋งฅ ๋ฟ์ด๋ค.
1.2 Programs are translated by other programs into different forms
- ์ ์ฒ๋ฆฌ๊ธฐ
- ํค๋ํ์ผ ํฌํจ, ๊ฐ์ข ๋งคํฌ๋ก ์นํ ํ ํ ์คํธ ํ์ผ ์ถ๋ ฅ
- ์ปดํ์ผ๋ฌ
- C ์ฝ๋๋ฅผ CPU ์ํคํ ์ฒ์ ๋ง๋ ๋ช ๋ น์ด์ ์ ์ด์ ๋ธ๋ฆฌ ์ธ์ด๋ก ์ถ๋ ฅ. (ํ ์คํธ ํ์ผ)
- ์ด์
๋ธ๋ฌ
- ์ด์ ๋ธ๋ฆฌ ์ธ์ด๋ฅผ ๊ธฐ๊ณ์ด๋ก ๋ณํํ๊ณ ๋ชฉ์ ํ์ผ๋ก ์ถ๋ ฅ (์ด์งํ์ผ)
- ๋ง์ปค
- ์ด์งํ์ผ๋ก๋ถํฐ ์คํ ๊ฐ๋ฅํ ํ์ผ์ ๋ง๋ค๊ธฐ ์ํด relocatable object๋ค์ ์ฃผ์๋ฅผ ์ ํํ ์์น๋ก ํ ๋น์ํจ๋ค.
- relocatable object๋?: ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ์ ์ํ ๋ณ์, ํจ์๋ฑ์ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ. ํ ์ด๋ธ์ ํํ๋ก ์กด์ฌํ๊ณ ๋งํน์์ ์ ์๋ ๋ง ๊ทธ๋๋ก ๋น์ด์๋ค.
- ์ด์งํ์ผ๋ก๋ถํฐ ์คํ ๊ฐ๋ฅํ ํ์ผ์ ๋ง๋ค๊ธฐ ์ํด relocatable object๋ค์ ์ฃผ์๋ฅผ ์ ํํ ์์น๋ก ํ ๋น์ํจ๋ค.
์ถ๊ฐ
- ๋ก๋
- ์คํํ์ผ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๊ณ PC(Program Counter)๋ฅผ ์ค์ ํ๋ ํ๋ก๊ทธ๋จ. COW (Copy On Write) ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ์ฐธ์กฐ, ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ก๋๋ ๋ด๋นํ๋ค.
1.3 It pays to understand how compilation system work
์ปดํ์ผ์ด ์งํ๋๋ ๋ฐฉ๋ฒ์ ์๋ฉด ์ฝ๋๋ฅผ ์ต์ ํ ์ํฌ ์ ์๊ณ , ๋ณด์์ทจ์ฝ์ ์ผ๋ก๋ถํฐ ์์ ํ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ผ๋ฉฐ, ๋งํฌ ํ์ ์๋ฌ๋ฅผ ํด๊ฒฐํ ์ ์๊ฒ ๋๋ค.
1.4 Processors read and interpret instructions stored in memory
์ ธ์ ์ญํ : ์ฌ์ฉ์์ ๋ช ๋ น์ ์ ๋ ฅ์ผ๋ก ๋ฐ์ ๋ค์ํ ์ผ์ ์ํํ๋ ํ๋ก๊ทธ๋จ. ์คํ ๊ฐ๋ฅํ ํ๋ก๊ทธ๋จ์ ์คํ์์ผ ์ ํ๋ก์ธ์ค๋ก ๋ง๋ค์ด์ฃผ๋ ์ญํ ์ ๋ด๋นํ๋ค.
์์คํ ์ ๊ตฌ์ฑํ๋ ํ๋์จ์ด ์ปดํฌ๋ํธ
- Buses buses and hierarchical buses {os}
- I/O Devices
- Main Memory
- Processor
Thus, we can distinguish the processor's instruction set architecture, describing the effect of each machine-code instruction, FROM its microarchitecture, describing how the processor is actually implemented.
๋ฐ๋ผ์, ์ฐ๋ฆฌ๋ ํ๋ก์ธ์์ ์ค๊ณ๋์ธ ๋ง์ดํฌ๋ก์ํคํ ์ณ์ ๊ฐ๊ฐ์ ๊ธฐ๊ณ์ด๊ฐ ์๋ฏธํ๋ ๋ฐ๋ฅผ ์ค๋ช ํ๋ ๋ช ๋ น์ด ์ ์ํคํ ์ฒ ๊ฐ์ ์ฐจ์ด๋ฅผ ๊ตฌ๋ณํ ์ ์์ต๋๋ค.
DMA
Directed Memory Access๋ผ๊ณ , ์ฐ๋ฆฌ๊ฐ ์์์ ์ฅ์ฅ์น์ ์ ์ฅ๋ ์คํ ๊ฐ๋ฅํ ํ์ผ์ ์คํ์ํฌ ๋ CPU๋ฅผ ๊ฑฐ์น์ง ์๊ณ ๋ฐ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ง๋นต์ผ๋ก ์ฌ๋ ค๋ฒ๋ฆฌ๋ ๋ฐฉ๋ฒ์ด ์๋ค. ๊ทธ๊ฒ์ Direct Memory Access Controller๋ผ๊ณ ๋ถ๋ฆฌ์ฐ๋ ๋ณ๋์ ์นฉ์ด ์๊ธฐ์ ๊ฐ๋ฅํ๋ค.
1.5 Caches matter
์ ์ฅ์ฅ์น๋ ํฌ๊ธฐ๊ฐ ํด์๋ก ๋๋ฆฌ๊ณ , ๋ฉ์๋ก ๋๋ฆฌ๋ค. CPU๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ์๋์ ์ฆ๊ฐ๋๋ณด๋ค ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ์๋์ ์ฆ๊ฐ๋์ด ๋๋ฆฌ๊ธฐ ๋๋ฌธ์ ์ด ์ฐจ์ด๋ ์๋๊ฐ ์ง๋ ์๋ก ์ปค์ง๋ค. ๋ฐ๋ผ์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ CPU ์ฌ์ด์ ์บ์๋ฅผ ๋ค๋จ๊ณ๋ก ๊ฐ์ถ์ด ์ค์ํ๊ณ ์์ฃผ ์ ๊ทผํ ๋ฐ์ดํฐ๋ค์ ๋น ๋ฅด๊ฒ ์ ๊ทผํ ์ ์๋๋ก ๋ง๋ค์๋ค.
localities
- ๊ณต๊ฐ์ ์ง์ญ์ฑ
- ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐธ์กฐํ๊ฒ ๋๋ฉด ๊ทธ ์ฃผ๋ณ๋ ๊ฐ์ด ์ฐธ์กฐํ ๊ฐ๋ฅ์ฑ์ด ๋๋ค.
- ์๊ฐ์ ์ง์ญ์ฑ
- ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐธ์กฐํ๊ฒ ๋๋ฉด ๋ค์ ์ฐธ์กฐ๋ ๊ฐ๋ฅ์ฑ์ด ๋๋ค.
1.6 Storage devices form a hierarchy
register > L1 cache > L2 cache > L3 cache > main memory > disk storage > network
1.7 The operating system manages the hardware
ํ๋ก๊ทธ๋จ์ด ์คํ๋ ๋ ์ฐ๋ฆฌ๋ ํ๋์จ์ด๋ฅผ ๋
์ ์ ์ผ๋ก ์ฌ์ฉํ๊ณ ์๋ค๋ ์ฐฉ๊ฐ์ ํ๊ฒ ๋ง๋ ๋ค. ๊ทธ ๊ธฐ์ ์ ์ด์์ฒด์ ๊ฐ ๊น๋ ค์๊ณ , ์ด์์ฒด์ ๋ ๋ ์ด์ด๋ก ๊ตฌํ๋์ด์๋ค. ํ๋์จ์ด๋ฅผ ๋ค๋ฃจ๋ ์์
(printf
, scanf
๋ฑ๋ฑ)์ ์ํํ ๋์๋ ํ๋์จ์ด๋ฅผ ์ปจํธ๋กค ํ๋ ๋ ์ด์ด์ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ์๋ฐ์ ์๋ค. ๋ ์ด์ด ๊ฐ์ ์ถ์ํ ๋๋ถ์ ๋ณด์์์ ์ด์ ๋ ๊ฐ์ ธ๊ฐ๊ณ , ์ธ์ง๋ถํ๋ ์ค์ผ ์ ์๊ฒ ๋์๋ค.
๋ค์ํ ์ถ์ํ๋ค
- ISA(Instruction Set Architecture)๋ ๊ธฐ๊ณ์ ๋์์ ์ถ์ํํ๋ค.
- ํ๋ก์ธ์ค๋ ํ๋ก์ธ์๋ฅผ ์ถ์ํํ๋ค. context switching ๋๋ถ์, ํ๋ก์ธ์์ ๊ฐ์์ ์ ์ฝ์ ๋ฐ์ง ์๊ณ ์ํ๋ ๋งํผ์ ํ๋ก์ธ์ค๋ฅผ ์คํํ ์ ์๊ฒ ๋์๋ค.
- ํ์ผ์ ๋์คํฌ IO ๋๋ฐ์ด์ค๋ฅผ ์ถ์ํํ๋ค.
- ๊ฐ์๋ฉ๋ชจ๋ฆฌ๋ ๋์คํฌ์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ถ์ํํ๋ค.
- ๊ฐ์ ์ด์์ฒด์ ๋ ์์ ๋ชจ๋ ๊ฒ์ ์ถ์ํํ๋ค. (๊ฐ์ฉ๋๋ฐ?) ๐ฎ
ํ๋ก์ธ์ค
syscall
์ ์ปค๋ ์ฝ๋์ ์ ์ ์ฝ๋๋ฅผ ๋ถ๋ฆฌํ๋ ์ธํฐํ์ด์ค์ด๋ค
์ค๋ ๋
ํ๋์ ํ๋ก์ธ์ค ์์์๋ ์ฌ๋ฌ๊ฐ์ ์คํํ๋ฆ์ด ์กด์ฌํ ์ ์๋ค.
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ
-
[?] ~~์ ์คํ์ด ์์์ ์๋๋ก ์๋ผ๊ณ ํ์ด ์๋์์ ์๋ก ์๋ผ์ง?
brk
๋ ์ด๋์ ๋ถ์ด์๋๋ผ? ~~- 04. process {SP} ์์ ๋ณผ ์ ์๋ฏ์ด, ์คํ์ ๋์ ์ฃผ์์์๋ถํฐ ์์ํด ์๋๋ก ํฅํ๊ณ , ํ์ ๋ฎ์ ์ฃผ์์์๋ถํฐ ์์ํด ์ฌ๋ผ๊ฐ๋ค.
brk
๋ ํ์ ๊ฒฝ๊ณ์ ๋ถ์ด์๋ค. - [?] Memory-mapped region for shared libraries๋ ์ด๋์ ๋ผ์ด์๋๊ฑฐ์ง?
- 04. process {SP} ์์ ๋ณผ ์ ์๋ฏ์ด, ์คํ์ ๋์ ์ฃผ์์์๋ถํฐ ์์ํด ์๋๋ก ํฅํ๊ณ , ํ์ ๋ฎ์ ์ฃผ์์์๋ถํฐ ์์ํด ์ฌ๋ผ๊ฐ๋ค.
-
Program Code, Data (text ์์ญ)
-
Heap ์์ญ
-
Shared Libraries์์ญ์ด ๊ฐ์๋ฉ๋ชจ๋ฆฌ์ ์ค๊ฐ์ ์กด์ฌํ๋ค๊ณ ? ๋ค์ด๋ณธ ์ ์ด ์๋๋ฐ?
-
Stack ์์ญ์ ๋ชจ๋ ํจ์์ ์ง์ญ๋ณ์๋ค์ด ์์ด๋ ๊ณต๊ฐ์ด๋ค.
-
์ปค๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ปค๋์ฝ๋๋ฅผ ์ง์ ์๋๋ ๊ฒ์ผ๋ก๋ถํฐ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ง๋ จ๋ ๊ณต๊ฐ์ด๋ค.
Files
์ ๋์ค ์์คํ ์์ ๋ชจ๋ ๊ฒ์ ํ์ผ์ด๋ค. IO๊ธฐ๊ธฐ๋ ๋คํธ์ํฌ๋ ํ์ผ์ด๋ผ๋๊ฑฐ.
1.8 Systems communicate with other systems using networks
WWW, FTP, SSH ๋ฑ ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ๋ค์ด ๋คํธ์ํฌ ์ด๋ํฐ๋ฅผ ์ฌ์ฉํ์ฌ ํต์ ํ๋ค.
1.9 Important themes
- Amdahl's Law(์๋ฌ์ ์ ์ฃผ)
- ๋ณ๋ชฉํ์์ผ๋ก ์ธํด ํ ์ปดํฌ๋ํธ์ ์ฑ๋ฅํฅ์์ด ์ค์ ๋ก ์ ์๋ฏธํ ๋ณํ๋ฅผ ์ฃผ๊ธฐ ์ด๋ ต๋ค.
์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ํ ์์คํ ์ค ์ผ๋ถ๋ฅผ ๊ฐ์ ํ์ฌ ๋ฐฐ ์ฑ๋ฅํฅ์์ ์ด๋ค๋๋ค๊ณ ํด๋ณด์. ๋ง์ฝ ์ด ์ปดํฌ๋ํธ ์คํ์๊ฐ์ด ์ ์ฒด ์์คํ ์ ๋งํผ์ ๋น์ค์ ๊ฐ์ง๊ณ ์๋ค๋ฉด ์ ์ฒด ์์คํ ์ฑ๋ฅํฅ์ ์ ์ด๋์ ๋์ผ๊น?
- ๋ณ๋ชฉํ์์ผ๋ก ์ธํด ํ ์ปดํฌ๋ํธ์ ์ฑ๋ฅํฅ์์ด ์ค์ ๋ก ์ ์๋ฏธํ ๋ณํ๋ฅผ ์ฃผ๊ธฐ ์ด๋ ต๋ค.
-
- ๊ทธ๋์ ์ ์ฒด ์์คํ ์ 60ํผ์ผํธ์ ์คํ์๊ฐ์ ์ฐจ์งํ๋ ํ ์ปดํฌ๋ํธ๋ฅผ 3๋ฐฐ ๋น ๋ฅด๊ฒ ๋ง๋ค์์ ๋ ์ ์ฒด ์์คํ ์ ์๋๋ ์ด์ ์ ๋นํด 1/(0.4 + 0.6 / 3) = 1.6667 ๋ฐฐ ๋นจ๋ผ์ง๊ฒ ๋๋ค.
-
Concurrency and Parallelism
- Thread Level Parallelism: ๋ฉํฐ ํ๋ก์ธ์๋ก ์ธํด ์ปดํจํฐ๋ ๋์์ ์ํํ ์ ์๋ ์์ ์ ์์ด ๋์ด๋ฌ๋ค. ํ์ดํผ์ค๋ ๋ฉ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ์ฝ์ด ํ๋๋น ๋๊ฐ์ ์ค๋ ๋๋ฅผ ๋์์ ์คํํ๋ ๊ฒ์ ๋ณด์ฅํ๋ค.
- Instruction Level Parallelism: Superscala Processors๋ผ๊ณ ๋ถ๋ฆฌ์ฐ๋ ํ์ดํ๋ผ์ด๋์ ํตํด์ ํด๋ก ์ฌ์ดํด ์ํ๋ฅผ ์ฐจ์งํ๋ ๋ช ๋ น์ด๋ฅผ ๊ณ๋จ ํํ๋ก ๋ฐฐ์นํ์ฌ ํ ์ฌ์ดํด ๋น ํ๋์ ๋ช ๋ น์ด๊ฐ ์คํ ์๋ฃ๊ฐ ๋๊ฒ ๊ตฌ์ฑํ ์ ์๋ค.
- [!] Single Instruction Multiple data (SIMD): ํ ๋ฒ์ 8๊ฐ์ ์ค์์ฐ์ฐ์ ์ํํ๋๋ก ํ๋์จ์ด๊ฐ ๊ตฌ์ฑ๋์ด์์ด ๋ณด๋ค ๋น ๋ฅด๊ฒ ํ๋ ฌ์ฐ์ฐ์ ์ํํ ์ ์๋ค. GCC ์ปดํ์ผ๋ฌ๋ C ์ฝ๋๋ก๋ถํฐ SIMD ๋ช ๋ น์ด๋ฅผ ์๋ณํด ๋ผ ์ ์๋ค.
-
Layer and Abstractions
์ํํธ์จ์ด ๊ณตํ์ ์ญ์ฌ๋ ์ถ์ํ ์์ค์ ๋ํ๋ ๋ฐฉํฅ์ผ๋ก ์งํ๋์ด์๋ค. | 20230522 ๊น์ถฉํ ํ๊ณ ๊ฐ์ฌํน๊ฐ#ํ๋ ฅ์ ํตํ ์ถ์ํ
- API (Application Programming Interface): ํ๋ก๊ทธ๋๋จธ๋ค์ด ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ธฐ ์ํด ๋ฌถ์ด๋์ ํจ์๋ ํด๋์ค์ ์งํฉ